[Essays] 퓨리에 변환

Author

신록예찬

Published

April 26, 2019

About this doc

- 이번에는 퓨리에 표현들을 정리하도록 하겠다. 내생각엔 퓨리에 표현들도 벡터의 미분만큼 복잡한 것 같다. 정의가 너무 많고 그게 그거 같아서 그렇다. 이번기회에 깔끔하게 정리하도록 하자. 참고한 문헌은 아래와 같다.

  • Haykin, S., & Van Veen, B. (2007). Signals and systems. John Wiley & Sons.

들어가며

- 우선 신호와 하나의 신호값을 구분하는 notation을 생각하자. 우리가 다루는 신호 즉 데이터는 값들의 집합이다. 우리가 시계열자료를 다룬다면 데이터는 아래와 같이 표현한다.

  • \(\{x_i: i \in \mathbb{Z}\}\)

이와 유시하게 우리가 다루는 자료가 \(t \in \mathbb{R}\)인 연속신호라면 아래와 같이 표현한다.

  • \(\{x(t): t \in \mathbb{R}\}\)

우리가 모든 \(i \in \mathbb{Z}\) 혹은 모든 \(t \in \mathbb{R}\)에서 신호를 다룰 생각이 없다면 아래와 같은 표현도 얼마든지 가능하다.

  • \(\{x_i: i=0,1,\dots, \xi-1 \}\)
  • \(\{x(t):t \in (0,\zeta) \}\)

- 위와 같이 집합의 표현 없이 단독으로 \(x_i\), \(x(t)\)와 같이 쓰면 하나의 고정된 값 \(i,t\)에 대한 \(x_i\), \(x(t)\)로 이해하자. 솔직히 이렇게 꼭 신호를 엄밀하게 집합으로 정의하는게 유별나 보일수도 있다. 일반적으로 사람들은 \(\{x(t): ~t \in \mathbb{R} \}\) 대신에 보통 \(x(t)\)로 간단하게 줄여서 쓰곤한다.1 하지만 이 포스팅에 한정하여 위와 같이 집합의 형태로 엄밀하게 구분해 쓰도록 하자. 처음에는 익숙하지 않지만 나중에는 편리하다.

  • 1 나도 그렇다.

  • 퓨리에표현들

    - 지금부터 우리가 고려하는 모든 신호들은 기본적으로 (1) infinity range에서 정의된 신호라고 가정한다. 즉 연속신호이면 \(\mathbb{R}\)에서 정의된다고 가정하고 이산신호면 \(\mathbb{Z}\)에서 정의된다고 가정한다. 또한 우리가 분석하고자 하는 신호는 (2) integrable 하다고 가정한다. 이건 퓨리에표현들이 적분 혹은 무한합의 형태로 표현된다는 것을 상기하면 타당하여 보인다.

    - 즉 우리가 고려하는 신호는 인피니티-레인지에서 정의되며 인피니티-레인지에서 적분값이 유한한 연속신호 혹은 이산신호 임을 알 수 있다. 이러한 신호는 구체적으로는 아래와 같이 쓸 수 있다.

    • \(\left\{x(t): \int_{-\infty}^{\infty} |x(t)| dt <\infty,~ t \in \mathbb{R} \right\}\)
    • \(\left\{x_i: \sum_{i=-\infty}^{\infty} |x_i| <\infty,~ i \in \mathbb{Z} \right\}\)

    - 그런데 integrable 한 함수들만을 고려하다 보면 우리가 다룰 수 있는 신호의 범위가 확 줄어들게 된다. 가령 예를 들어서 아래와 같은 신호는 적분을 하면 무한대가 나오기 때문에 intergrable 하지 않다.

    • \(\left\{x(t): x(t)=\sin(t)+1 ,~ t \in \mathbb{R} \right\}\)

    이것은 좀 불합리해 보이는데 위의 신호는 주기신호라서 한 주기의 패턴만 분석하면 될것 같이 보이기 때문이다. 위의 신호는 intergrable 하지않지만 아래의 신호는 intergrable 하다.

    • \(\left\{x(t): x(t)=\sin(t)+1 ,~ t \in (0,2\pi) \right\}\)

    우리는 이런신호까지 분석하기로 한다. 이런신호를 분석할 수 있는 이유는 해석학 교재를 참고하면 된다.2

  • 2 사실 나도 잘 모름 (뭐 quotient group이런거 알아야 하는데 공부하려면 꽤 걸릴듯)

  • - 아무튼 우리는 (1) 인피니티-레인지에서 정의되는 가지는 신호 (2) 인피니티-레인지에서 적분값이 잘 정의되는 신호, 혹은 한 주기만 적분해 보았을때 그 값이 잘 정의되는 주기신호 를 타겟팅해 분석한다. 즉 분석하는 신호는 구체적으로 아래의 4가지이다.

    case 1: 연속-비주기

    • \(\left\{x(t): \int_{-\infty}^{\infty} |x(t)| dt <\infty,~ t \in \mathbb{R} \right\}.\)

    case 2: 연속-주기

    • \(\left\{x(t): \int_{0}^{\zeta} |x(t)| dt <\infty, ~ , x(t)=x(t+\zeta), ~ t \in \mathbb{R}, \right\}.\)

    case 3: 이산-비주기

    • \(\left\{x_i: \sum_{i=-\infty}^{\infty} |x_i| <\infty,~ i \in \mathbb{Z} \right\}.\)

    case 4: 이산-주기

    • \(\left\{x_i: \sum_{i=0}^{\xi-1} |x_i| <\infty,~ i, x_i=x_{i+\xi},~ i \in \mathbb{Z} \right\}.\)

    - 표현들을 정리하기에 앞서서 몇 가지 알아두어야 할 사항이 있다. (1) 시간축에서 연속인 신호는 주파수측에서는 비주기신호가 나온다. (2) 시간축에서 디스크릿한 신호는 주파수측에서는 주기신호이다. (3) 시간축에서 주기인 신호는 주파수에서는 디스크릿하다. (4) 시간축에서 비주기신호는 주파수에서 연속이다. 이 사실들을 종합하면 각각의 경우에 해당하는 퓨리에 표현들은 아래와 같은 특징을 가지고 있음을 알 수 있다.

    case 1: 연속-비주기

    • \(\left\{x(t): \int_{-\infty}^{\infty} |x(t)| dt <\infty,~ t \in \mathbb{R} \right\} \\ \overset{FT}{\Longleftrightarrow} \left\{\hat x(\omega): \int_{-\infty}^{\infty} |\hat x(\omega)| d\omega <\infty,~ \omega \in \mathbb{R} \right\}\)

    case 2: 연속-주기

    • \(\left\{x(t): \int_{0}^{\zeta} |x(t)| dt <\infty,~ x(t)=x(t+\zeta),~ t \in \mathbb{R} \right\} \\ \overset{FS}{\Longleftrightarrow} \left\{\hat x_k: \sum_{k=-\infty}^{\infty} |\hat x_k| <\infty,~ k \in \mathbb{Z} \right\}\)

    case 3: 이산-비주기

    • \(\left\{x_i: \sum_{i=-\infty}^{\infty} |x_i| <\infty,~ i \in \mathbb{Z} \right\} \\ \overset{DTFT}{\Longleftrightarrow} \left\{\hat x(\omega): \int_{0}^{2\pi} |\hat x(\omega)| d\omega <\infty,~ \hat x(\omega)=\hat x(\omega+2\pi),~ \omega \in \mathbb{R} \right\}.\)

    case 4: 이산-주기

    • \(\left\{x_i: \sum_{i=0}^{\xi-1} |x_i| <\infty,~ x_i=x_{i+\xi},~ i \in \mathbb{R} \right\} \\ \overset{DTFS}{\Longleftrightarrow} \left\{\hat x_k: \sum_{k=0}^{\xi-1} |\hat x_k| <\infty,~\hat x_k = \hat x_{k+\xi} ,~ k \in \mathbb{Z} \right\}.\)

    - 여기에서 \(\zeta\)는 (시간축에서) 연속신호의 주기라고 정의하고 \(\xi\)는 (시간축에서) 이산신호의 주기라고 약속하자. 주파수영역이 디스크릿하게 나오면 FS라고 부르고 주파수영역이 컨티뉴어스하게 나오면 FT라고 부른다. 특이한점은 비주기-이산신호에 대한 FS \(\hat x(\omega)\)는 주파수 영역에서 주기가 \(2\pi\)임을 파악할 수 있다. 이유는 궁금해하지말자. (내생각에 그냥 \(\omega\)를 적당히 스케일링하여 주기를 \(2\pi\)로 맞췄을 거다.)

    - 이제 짜증나는 적분가능조건따위는 버리도록 하자. 대신에 각 경우에 퓨리에변환(혹은series)과 그 역이 어떻게 정의되는지 알아보자. 그리고 외우자. 각 신호가 어떠한 도메인에서 정의되는지만 잘 파악하면 의외로 외우기 쉽다.

    case 1. 연속-비주기

    • \(\left\{x(t): x(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty} \hat x(\omega)e^{j\omega t} d\omega,~ t \in \mathbb{R} \right\} \\ \overset{FT}{\Longleftrightarrow} \left\{\hat x(\omega): \hat x(\omega)=\int_{-\infty}^{\infty} x(t)e^{-j\omega t} dt,~ \omega \in \mathbb{R} \right\}.\)

    case 2. 연속-주기

    • \(\left\{x(t): x(t)= \sum_{k=-\infty}^{\infty} \hat x_k e^{j \frac{2\pi}{\zeta} t} ,~ t \in \mathbb{R} \right\} \\ \overset{FS}{\Longleftrightarrow} \left\{\hat x_k: \hat x_k= \frac{1}{\zeta}\int_{0}^{\zeta}x(t)e^{-j \frac{2\pi k}{\zeta}t}dt,~ k \in \mathbb{Z} \right\}.\)

    case 3. 이산-비주기

    • \(\left\{x_i: x_i=\frac{1}{2\pi}\int_{0}^{2\pi}\hat x(\omega)e^{j \omega i}d\omega, ~ i \in \mathbb{Z} \right\} \\ \overset{DTFT}{\Longleftrightarrow} \left\{\hat x(\omega): \hat x(\omega)=\sum_{i=-\infty}^{\infty}x_ie^{-j\omega i}, ~\omega \in \mathbb{R} \right\}.\)

    case 4. 이산-주기

    • \(\left\{x_i: x_i=\sum_{k=0}^{\xi-1} \hat x_k e^{-j\frac{2\pi k}{\xi}i},~ i \in \mathbb{Z} \right\} \\ \overset{DTFS}{\Longleftrightarrow} \left\{\hat x_k: \hat x_k= \frac{1}{\xi}\sum_{i=0}^{\xi-1} x_i e^{-j\frac{2\pi k}{\xi}i},~ k \in \mathbb{Z} \right\}.\)

    - 주기함수는 (그것이 이산이든 연속이든) 주파수영역에서의 값이 디스크릿하다. 즉 위에서 case2와 case4인 경우는 주파수영역에서 값이 디스크릿하다. 이것을 연속함수인것처럼 바꿔보면 아래와 같이 쓸 수 있다.

    case 2. 연속-주기

    • \(\left\{x(t): x(t)= \frac{1}{2\pi}\int_{-\infty}^{\infty} \hat x(\omega)e^{j\omega t} d\omega,~ t \in \mathbb{R} \right\} \\ \overset{FT}{\Longleftrightarrow} \left\{\hat x(\omega): 2\pi\sum_{k=-\infty}^{\infty}\left[\frac{1}{\zeta}\int_{0}^{\zeta}x(t)e^{-j \frac{2\pi k}{\zeta}t}dt\right]\delta\left(\omega-\frac{2\pi k}{\zeta}\right), ~ k \in \mathbb{Z} \right\}.\)

    case 4. 이산-주기

    • \(\left\{x_i: x_i=\frac{1}{2\pi}\int_{0}^{2\pi}\hat x(\omega)e^{j \omega i}d\omega,,~ i \in \mathbb{Z} \right\} \\ \overset{DTFT}{\Longleftrightarrow} \left\{\hat x(\omega): 2\pi\sum_{k=-\infty}^{\infty}\left[\frac{1}{\xi}\sum_{i=0}^{\xi-1} x_i e^{-j\frac{2\pi k}{\xi}i}\right]\delta\left(\omega-\frac{2\pi k}{\xi}\right),~ k \in \mathbb{Z} \right\}.\)

    - 주목할것은 주기가 \(\zeta\) 혹은 \(\xi\) 인 함수의 주파수 응답은 오로지

    • \(\omega \in \left\{\frac{2 \pi k}{\zeta}, k \in \mathbb{Z}\right\}\)

    혹은

    • \(\omega \in \left\{\frac{2 \pi k}{\xi}, k \in \mathbb{Z}\right\}\)

    에서만 존재한다는 점이다. 또한 이산신호의 경우 \(x_i\)의 주기가 \(\xi\) 이면 \(\hat{x}(\omega)\)의 주기역시 \(\xi\) 라는점 역시 주목할만한 부분이다.

    - 주파수영역에서 디스크릿한 함수를 연속인것처럼 표현했듯이 시간영역에서 디스크릿한 함수 역시 연속인것처럼 표현할 수 있다. 예를들면 \(\{x_i: x_i=x(iT),~i \in \mathbb{Z}\}\) 와 같은 관계가 있는 경우 아래와 같이 표현 가능하다.

    \[x_{\delta}(t)=\sum_{i=-\infty}^{\infty}x_i\delta(t-iT).\]

    이거 엄청 중요하다.